Method of extracting and searching integral histograms of data samples

ABSTRACT

A computer implemented method extracts an integral histogram from sampled data, such as time series data, images, and volumetric data. First, a set of samples is acquired from a real-word signal. The set of samples is scanned in a predetermined order. For each current sample, an integral histogram integrating a histogram of the current sample and integral histograms of previously scanned samples is constructed.

FIELD OF THE INVENTION

The invention relates generally to representing and searching data samples of real-world signals, and more particularly to representing and searching with histograms extracted from the data samples to detect objects.

BACKGROUND OF THE INVENTION

As shown in FIG. 1, a histogram 100 is an array of ‘bins’ 101. Each bin corresponds to a range 102 of values of a sampled data set. The bin ‘counts’ the frequency 103 of occurrences of sample values in a particular range. In other words, the histogram represents a frequency distribution of the samples in the data set.

For example, a histogram of a sampled color image ‘counts’ the number of pixels that have the same color values in each bin. Thus, the histogram is a mapping from the sampled data set to a set of non-negative real numbers +R.

From a probabilistic point of view, a normalization of the histogram results in a discrete function that resembles a probability density function of the data set. Histograms can be used to determine statistical properties of the data set, such as distribution, spread, and outliers.

Histograms are used in many computer vision applications, such as object based indexing and retrieval, C. Carson, M. Thomas, S. Belongie, J. M. Hellerstein, and J. Malik, “Blobworld: A system for region-based image indexing and retrieval”, Proceedings of ICVS, 1999 and J. Huang, S. Kumar, M. Mitra, W. J. Zhu, and R. Zabih, “Image indexing using color correlograms”, Proceedings of CVPR, 1997; image segmentation, D. A. Forsyth and J. Ponce. “Computer Vision: A Modem Approach”, Prentice Hall, 2002 and S. Ruiz-Correa, L. G. Shapiro, and M. Meila, “A new paradigm for recognizing 3-D object shapes from range data”, Proceedings of CVPR, 2003; object detection, C. Papageorgiou, M. Oren, and T. Poggio, “A general framework for object detection,” Proceedings of ICCV, 1998; and object tracking, D. Comaniciu, V. Ramesh, and P. Meer, “Real-time tracking of nonrigid objects using mean shift,” Proceedings of CVPR, 2000.

A face detector is described by P. Viola and M. Jones, “Robust real-time face detection”, Proceedings of ICCV, page II: 747, 2001. As described by Viola et al., it is possible determine the sum of the intensity values within rectangular windows scanned over an image in linear time without repeating the summation operator for each possible window. For each rectangular sum, a constant number of operations is required to determine the sums over distinct rectangles multiple times. This defines a cumulative or integral intensity image, where each pixel holds the sum of all values to the left of and above the pixel including the value of the pixel itself. The integral intensity image can be determined for the entire image with only four arithmetic operations per pixel. One starts the scan with the window in the top left corner pixel of the image, going first to the right and then down. A function determines the value of the current pixel in the integral image to be the sum of all pixel intensities above and to the left of the current pixel minus the pixel values to the upper left. The sum of an image function in a rectangle can be determined with another four arithmetic operations with appropriate modifications at the border. Thus, with a linear amount of operations, the sum of the image functions over any rectangle can be determined in linear time to construct the integral image.

Unfortunately, it is time consuming to extract and search conventional histograms. Only an exhaustive search can provide a global optimum. Sub-optimal searches, such as a gradient descent and application specific constraints can accelerate the search. However, computer vision applications that rely on the optimal solutions, such as object detection and tracking, demand a theoretical breakthrough in histogram extraction.

Conventionally, an exhaustive search is required to measure all distances between a particular histogram and histograms of all possible target regions. This process requires generation of histograms for the regions centered at every possible point, e.g., pixels. In cases where the search is performed at different scales, i.e., different target region scale (sizes), the process is repeated as many times as the number of scales.

FIG. 2 shows the pseudocode 200 of a conventional histogram search.

Up to now, this conventional approach is the only known solution that guarantees finding a global optimum for a histogram-based search.

It is desired to improve the speed of histogram extraction and searching histograms by several orders of magnitude.

SUMMARY OF THE INVENTION

The invention provides a method for extracting integral histograms from possible target regions in a Cartesian sampled data space, and to search the extracted histograms.

The invention exploits the spatial arrangement of data points, and recursively propagates an aggregated histogram by starting from an origin and scanning through the remaining points along a predetermined scan-line. The histogram of a rectangular region is determined by intersecting the integral histogram at four corner points. At each step, a single bin is updated using the values of the integral histogram at the previously processed neighboring points. After the integral histogram is propagated, the histogram of any target region can be constructed using just a small number of simple arithmetic operations.

The method according to the invention has three distinct advantages. The method is extremely fast when compared to conventional approaches. The method can employ an exhaustive search process in real-time, which has been impractical up to now for most complex vision applications. The method can be extended to higher data dimensions, uniform and non-uniform bin formations, and multiple target scales without sacrificing its advantages. The method also enables a description of higher-level histogram features that enable integration of spatial information within the histogram.

Numerical analysis with different number of bins, data dimensions, and data structures proves that the integral histogram method according to the invention drastically decreases the number of required operations.

The method can be used to detect objects in a video in real-time.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a prior art histogram;

FIG. 2 is a pseudocode of a prior art histogram extraction method;

FIG. 3 is a pseudocode for a histogram extraction method according to the invention;

FIG. 4 is a block diagram of a scan line through pixels in an image;

FIG. 5 is a block diagram of a recursive integral histogram construction;

FIG. 6 is a block diagram of a recursive integral histogram construction;

FIG. 7 is a diagram of mapping a target traffic sign in an input image to a similar similarity map;

FIG. 8 is a diagram of mapping textures in an input image to similarity maps;

FIG. 9 compares object tracking in videos using conventional mean-shift object tracking and tracking with the integral histogram method according to the invention;

FIG. 10 is a block diagram of spatial combinations of integral histograms according to the invention;

FIG. 11 is a block diagram of hierarchical combinations of integral histograms according to the invention; and

FIG. 12 is a block diagram of model-based combinations of integral histograms according to the invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

Integral Histogram

An integral histogram according to the invention is extracted from sampled data by a recursive propagation method. The method works in Cartesian spaces. The method can be extended into any dimensional data space and any tensor representations.

A function f such as x→f(x), is a defined in a d-dimensional real valued Cartesian space R^(d), where x=[x₁, . . . , x_(d)] are sample points in the space. The functionfmaps to a k-dimensional tensor, i.e., f(x)=[g₁, . . . , g_(k)]. The d-dimensional data space is bounded within a range N₁, . . . , N_(d), i.e., 0≦x_(i)≦N_(i).

An integral histogram H(x, b) is defined along a scanline of points x₀, x₁, . . . , such that: $\begin{matrix} {{{H\left( {x,b} \right)} = {\overset{x}{\bigcup\limits_{p = 0}}{Q\left( {f(p)} \right)}}},} & (1) \end{matrix}$ where Q(.) gives the corresponding bin of a current point, and U is the union operator that is defined as follows.

The value of the bin b of the histogram H(x, b) is equal to the sum of bin values of previously scanned points of the histogram, i.e., the sum of all Q(f(p)), while p<x. In other words, H(x, b) is the histogram of a larger Cartesian region ‘between’ the origin and a current point, and 0≦p₁≦x₁, 0≦p₂≦x₂, . . . , etc.

Note that H(N, b) is equal to the histogram of all data points in the space, because N=[N₁, . . . , N_(d)] is the boundary of the space.

Therefore, the integral histogram can be obtained recursively as: H(x)=H(x−1)∪Q(f(x))   (2) using the initial condition H(0)=0, i.e., all of the bins of the histogram are empty initially.

Then, the histogram of a target region T=[p⁻, p⁺], where p⁻<p⁺ determines the propagated integral histogram values at the bounding points of the region as: $\begin{matrix} {{{h\left( {T,b} \right)} = {{H\left( {p^{+},b} \right)} - {\overset{d}{\sum\limits_{i \neq j}}{H\left( {\left\lbrack {p_{i}^{-},p_{j}^{+}} \right\rbrack,b} \right)}} + {\left( {d - 1} \right){H\left( {p^{-},b} \right)}}}},} & (3) \end{matrix}$ which becomes h(T, b)=H(p ⁺ ₁ , p ⁺ ₂ , b)−H(p ⁺ ₁ , p ⁻ ₂ , b)+H(p ⁻ ₁ , p ⁻ ₂ , b) for a 2-D data set. Note that the region is bounded by p ⁻ ₁ ≦x ₁ ≦p ⁺ ₁ , . . . , p ⁻ _(d) ≦x _(N) ≦p ⁺ _(d).

As opposed to conventional histogram construction, the integral histogram method according to the invention does not repeat the histogram extraction for each possible region.

FIG. 3 shows the pseudocode 300 of a method for extracting an integral histogram from sampled data according to the invention.

For each possible point, and for each target point, get the current value, find the bin, and increase the bin value. Then, for each possible scale, for each possible point, and for each bin, compute the intersection with previous bins, normalize, and compute distances between histograms.

In case of a 2-D data, e.g., a N₁×N₂ gray level image, the parameters. are d=2, k=1, and the data space is limited within the vertical and horizontal image sizes N₁, N₂.

As shown in FIG. 4, the scanline 401 for the image 402 can be assigned to pixels 403 in a left to right, and top to bottom order.

As shown in FIGS. 5 and 6, the recursion can be expressed as: H(x ₁ , x ₂ , b)=H(x ₁−1, x ₂ , b)+H(x ₁ , x ₂−1, b)−H(x ₁−1, x ₂−1, b)+Q(f(x ₁ , x ₂))   (4) for all b=1, . . . , B.

This propagation assigns the histogram bins of the current point by using an intersection of the bins of the three previous histograms 501-503, to the left, top, and upper-left, respectively, with an increment of the value of the bin that belongs to the current data point (pixel) I(x, y) 504.

The following sections analyze the computational cost of extracting the integral histogram when compared with conventional histograms. The analysis is included because the analysis dramatically shows that the integral histogram method is extremely superior to conventional histogram extraction methods.

Integer Data

In this case, the sampled input data is a d-dimensional array, wherein the range of values for each dimension is N_(d) with associated k-dimensional tensors. The histograms are k-dimensional with B identical bins for each dimension. The bin size is an integer number. Furthermore, a target window for the histogram corresponds to a size of a target object, M₁× . . . ×M_(d).

Conventional histogram matching algorithm requires 7 d−3+k operations to determine current values in the d-dimensional input tensor, 75 k operations to determine the corresponding bin indices, and one operation to increase the bin value. Bin indices can be determined by a floating-point multiplication and then float-to-integer conversion. The cost of this option, (109 k), is higher than the division itself (75 k). After all the M₁× . . . ×M_(d) points in the target window have been processed, the histogram bins are normalized with the number of points, which requires B^(k) floating point multiplications, thus 4 B^(k) operations in terms of the relative cost. These operations are repeated for each of the N₁× . . . ×N_(d) histograms matches. $\begin{matrix} {\left\lbrack {{\left( {{7d} + {76k} - 2} \right){\overset{d}{\prod\limits_{j}}M_{j}}} + {4B^{k}}} \right\rbrack{\overset{d}{\prod\limits_{j}}{N_{j}.}}} & (5) \end{matrix}$

Note that, for different window size combinations M_(s)=1, . . . , S_(s), where S_(s) represents a maximum size of the range for the dimension s, the above process is repeated so that the total number of operations for the conventional method is $\begin{matrix} {\left\lbrack {{\left( {{7d} + {76k} - 2} \right){\overset{d}{\prod\limits_{j}}M_{j}}} + {4B^{k}}} \right\rbrack{\overset{d}{\prod\limits_{i}}{N_{j}{\overset{d}{\prod\limits_{s}}{S_{j}.}}}}} & (6) \end{matrix}$

The number of operations required for propagation with the integral histogram is 3(7 k−3)+2 k=23 k−9, in addition to the cost of getting the current value of the tensor values (7 d−3+k), finding the indices of the corresponding bin (75 k), and accumulating the obtained bin value, which is repeated for all points in the data space.

Then, the number of operations required to extract the histograms is $\left\lbrack \left( {{7d} + {99k} - 11} \right) \right\rbrack{\overset{d}{\prod\limits_{i}}{N_{i}.}}$

The histogram intersection uses 4(7 k−3)+3 k=31 k−12 operations. Normalizing the result uses B^(k) floating point divisions, i.e., 4 B^(k) operations, for each histogram. Then, the cost of all N₁× . . . ×N_(d) histograms and all possible search window dimension matches is only $\begin{matrix} {\left\lbrack {{7d} + {99k} - 11 + {\left( {{31k} - 12 + {4B^{k}}} \right){\overset{d}{\prod\limits_{s}}S_{s}}}} \right\rbrack{\overset{d}{\prod\limits_{i}}{N_{i}.}}} & (7) \end{matrix}$

A ratio of the computational load of the conventional approach versus the integral histogram method is $\begin{matrix} {r = {\frac{\left\lbrack {{\left( {{7d} + {76k} - 2} \right){\overset{d}{\prod\limits_{j}}M_{j}}} + {4B^{k}}} \right\rbrack{\overset{d}{\prod\limits_{s}}S_{s}}}{{7d} + {99k} - 11 + {\left( {{31k} - 12 + {4B^{k}}} \right){\overset{d}{\prod\limits_{s}}S_{s}}}}.}} & (8) \end{matrix}$

Floating Point Data

Floating point data increases the number of operations for each division for each point from 75 k to 100 k. The bin value increment cost becomes four, which was one before. The total cost for the conventional approach becomes: $\begin{matrix} {\left\lbrack {{\left( {{7d} + {101k} + 1} \right){\overset{d}{\prod\limits_{j}}M_{j}}} + {4B^{k}}} \right\rbrack{\overset{d}{\prod\limits_{i}}{N_{i}{\overset{d}{\prod\limits_{s}}{S_{s}.}}}}} & (9) \end{matrix}$

For the integral histogram method, the complexity of the step for finding bin indices increases to 100 k. In the propagation stage, the cost of additions increases from 2 k to 8 k. In the intersection computation, the cost becomes: $\begin{matrix} {\left\lbrack {{7d} + {130k} - {11\left( {{40k} - 12 + {4B^{k}}} \right){\overset{d}{\prod\limits_{s}}S_{s}}}} \right\rbrack{\overset{d}{\prod\limits_{i}}{N_{i}.}}} & (10) \end{matrix}$

Power-of-Two Bin Sizes

Note that optimization is possible by using a bin size that is a power of two. Using bit-wise shift operator, a division operator can be achieved at a fraction of the cost. For instance, instead of dividing by 64, the number can be shifted six bits to the right. The computation of the bin indices drops from 75 k to 2 k, on average and depending the number of bit shifts. Then, the total number of operations for integer data using the conventional approach becomes $\begin{matrix} {\left\lbrack {{\left( {{7d} + {3k} - 2} \right){\overset{d}{\prod\limits_{j}}M_{j}}} + {4B^{k}}} \right\rbrack{\overset{d}{\prod\limits_{i}}{N_{i}{\overset{d}{\prod\limits_{s}}{S_{s}.}}}}} & (11) \end{matrix}$

For the integral histogram with bin sizes that are powers of two, the total cost drops to $\begin{matrix} {\left\lbrack {{31k} + {7d} + 1 + {\left( {{43k} + 1 + {100B^{k}}} \right){\prod\limits_{s}^{d}S_{s}}}} \right\rbrack{\prod\limits_{i}^{d}{N_{i}.}}} & (12) \end{matrix}$

Matching Without Normalization

For some applications, the target object is searched in its original size without scaling, or with scaling factors of half sizes that correspond to down-sampling by powers of two, i.e., half size, quarter size, etc. In such cases, further computational reduction is possible because no histogram normalization is needed for the same size matches, and significant reduction is achieved for smaller half-sizes because the division can be done using bit-wise right shift operator. For a scaling factor of 2^(−s), where s=0 stand for no scaling, s≦1 for downsizing, the necessary computations of the conventional approach with integer data becomes $\begin{matrix} {\left\lbrack {{\left( {{7d} + {35k} + 4} \right){\prod\limits_{j}^{d}M_{j}}} + {5\quad\left( {1 - {\delta\quad(s)}} \right)B^{k}}} \right\rbrack{\prod\limits_{i}^{d}{N_{i}.}}} & (13) \end{matrix}$

The cost for the integral histogram becomes $\begin{matrix} {\left\lbrack {{7d} + {26k} - 11 + {\left( {{31k} - 12 + {4B^{k}}} \right){\prod\limits_{s}^{d}S_{s}}}} \right\rbrack{\prod\limits_{i}^{d}{N_{i}.}}} & (14) \end{matrix}$

Note that, in addition to the above costs, the conventional approach has another important disadvantage. After each computation, the histogram array values are initialized anew. This creates additional overhead.

Applications

Time Series Data

For 1D-sampled data, such as a time series of an audio signal with a length M and a histogram having a total bin number B, and a target size range up to S data points, the parameters of the above analysis become d=1 and k=1. The ratio becomes $\begin{matrix} {r_{1} = {\frac{\left( {{81M} + {4B}} \right)S}{95 + {\left( {19 + {4B}} \right)S}}.}} & (15) \end{matrix}$

Surprisingly, the integral histogram improves the processing time of time series sampled data up to the 3.5×10⁴ times over the conventional method. For instance, a common task that requires searching time series data that contains 10⁴ points with a 32-bins histogram is 3,347 times faster than the conventional method.

Gray Level Images

For a M₁×M₂ gray level image and a search window size range S₁, S₂, the parameters of the above analysis become d=2 and k=1, and the ratio is $\begin{matrix} {r_{2} = {\frac{\left\lbrack {{88M_{1}M_{2}} + {4B}} \right\rbrack S_{1}S_{2}}{102 + {\left( {50 + {4B}} \right)S_{1}S_{2}}}.}} & (16) \end{matrix}$

Two-dimensional data is very common in vision applications that use gray-level surveillance videos and monochrome aerial imagery. For example, the problem is to find a 64×64 target pattern at three different hierarchical resolutions, e.g., 64×64, 32×32, and 16×16, using a 16-bins histogram. The method according to the invention finds the target pattern 2,435 times faster. With other optimizations as described above, the entire process can speed up by a factor of 6×10⁴ compared to the conventional method.

Color Images

For a color image with a 3D histogram, where each point has three color values in a tensor form, the parameters become d=2 and k=3. If the search is with a template window size of S₁, S₂ in image dimensions, the ratio is: $\begin{matrix} {r_{3} = {\frac{\left\lbrack {{240M_{1}M_{2}} + {4B^{3}}} \right\rbrack S_{1}S_{2}}{300 + {\left( {81 + {4B^{3}}} \right)S_{1}S_{2}}}.}} & (17) \end{matrix}$

Even for a regular model matching task that searches a 100×100 object models at twenty scales using histograms for each color channel coded in four bits, i.e., sixteen bins, the process is accelerated 146 times. The savings can go up to 7×10⁵ depending on the number of bins and target size.

Volumetric Data

For volumetric data, the parameters are d=3 and k=1. Searching in higher dimensional spaces is essential in feature selection and classification problems. The corresponding ratio is $\begin{matrix} {r_{4} = {\frac{\left\lbrack {{95M_{1}M_{2}M_{3}} + {4B}} \right\rbrack S_{1}S_{2}S_{3}}{109 + {\left( {81 + {4B}} \right)S_{1}S_{2}S_{3}}}.}} & (18) \end{matrix}$

The integral histogram method becomes much more advantageous in higher dimensions. The savings can reach up to 15×10⁷. For searching a 10³×10³×10³ target volume searched in its original size (S=1) using a 100-bins histogram, the invention can achieve an amazing 1.6×10⁸ times improvement.

Object Detection

As shown in FIG. 7, an object detection application takes as input an image 701. The target is a traffic sign 702. The search for the target object uses a 15-bins color histogram for each channel. The integral histogram is used to construct a similar similarity map 703, which is similar to a conventional similarity map. However, the integral histogram method runs in 63 msecs, while the conventional method requires two minutes on a conventional 3.2 Ghz processor, an almost 2000 times improvement.

Texture Detection

As shown in FIG. 8, the integral histogram method can also be used for a texture detection application. This application takes as input an image of textures 801. The task is to detect textures 802 and 803. The detected textures are shown in the corresponding similarity maps 804 and 805. The integral histogram has 24-bins histogram of gradient orientations. The integral histogram method takes 88 msecs and the conventional method requires more than five minutes of processing time, an increase by a factor of 3400. Note that even such a simple histogram provides sufficient information for texture segmentation. It is also possible to combine histograms to define higher level features such as Haar wavelets.

We determine pixel-wise texture features and construct tensors for image data. Each tensor is a vector that includes corresponding texture components such as gradient magnitude, orientation, color, and edge, as well as other image filter responses such as Gabor filters, discrete Fourier, and cosine transform coefficients.

We determine a histogram of texture using the tensors. For instance, if we have k different texture components, then our tensor is a [1×k] tensor. Each element in the tensor indicates the value of the corresponding texture feature for the current pixel. We also specify quantization steps for each element in the sensor such as K₁, K₂, . . . , K_(d) for the 1^(st), 2^(nd), . . . , d^(th) features, where d can be a large positive integer. The integral histogram then is K₁×K₂× . . . ×K_(d). The construction of such a higher dimensional histogram for each target region/data range using the conventional method requires exponential time, which is prohibitive for most texture detection applications. However, integral histogram method provides higher reduction in computational load especially as the dimensionality of the data increases.

Higher Level Features

As shown in FIGS. 10-12, higher level features can easily be determined using spatial, hierarchical, and model-based combinations of the integral histogram according to the invention.

FIG. 10 shows a spatial combination of histograms h₁, h₂, h₃, and h₄ around a center point p 1010. The combined histogram h(p) 1020 is given by (h₁−h₂+h₃−h₄). The higher level features are constructed by summation or subtraction of corresponding histograms of regions in an image. FIG. 11 shows a hierarchical combination of histograms h₁, h₂, and h₃ centered at a point p 1105. Instead of constructing a histogram on a single scale, the higher level features are constructed from multiple histograms within different cocentric regions. The histograms are combined to form an aggregated histogram according to h(p) 1110 which is h₁∪h₂∪h₃, to capture multi-scale properties of the underlying data distribution.

FIG. 12 shows a model-based combination of histograms for a face that includes hair color 1201, eye color 1202, face texture 1203, skin color 1204, and lip color 1205. The combined histogram h(p) 1210 is ∪_(i)h_(i).

These combinations of enable integration of spatial information as well as the distribution of the data values.

Tracking Examples

FIG. 9 compares the integral histogram method with a conventional histogram method for tracking objects in an input video, e.g., a pedestrian in a street scene. The input is a sequence of frames 901. The sequence 902 shows the result of conventional mean-shift tracking. Note that the conventional method fails to track the pedestrian, and instead tracks a stationary shadow. The sequence 903 shows the tracked object, as correctly tracked in the sequence 904 using the integral histogram method.

After initialization of an object, the color histogram similarity scores between the original histogram and the histograms of the object windows centered on every pixels are determined. Note that, such a similarity determination is very slow using the conventional method. The integral histogram method is compared with a gradient descent based method known as mean-shift, see Comaniciu et al., above.

The mean-shift method evaluates the histogram similarity, in most cases using a Bhattacharya distance, only within its original kernel, that is the window of the object. The mean-shift iterations uses 16-bins histograms for each color channel. However, the mean-shift only evaluates similarity within a limited search region. As a result, for the cases in which object relocation is large between frames, and there is no overlap between the object windows in the consecutive frames, it is bound to fail, as shown in the sequence 902.

The integral histogram enables one to determine similarities over the entire image plane in a relatively constant small amount of time, e.g., 55 msecs. Thus, with the integral histogram method it is now possible to track the objects accurately at high frame rates.

EFFECT OF THE INVENTION

The invention provides a computationally efficient method for extracting and searching histograms of all possible regions in a Cartesian space. The integral histogram provides an optimum and complete solution for histogram-based applications.

The integral histogram method can expedite the search process more than thousands of times in comparison to conventional methods.

The method can be extended to any dimensional data space and any tensor representations.

In addition, the method enables the construction of advanced histogram features for further feature selection and classification purposes.

Many computer vision applications, such as video object detection and tracking, where the real-time requirement have been a bottleneck up to now, can benefit from the integral histogram method.

Although the invention has been described by way of examples of preferred embodiments, it is to be understood that various other adaptations and modifications may be made within the spirit and scope of the invention. Therefore, it is the object of the appended claims to cover all such variations and modifications as come within the true spirit and scope of the invention. 

1. A computer implemented method for extracting an integral histogram from sampled data, comprising: acquiring a set of samples from a real-word signal; scanning the set of samples in a predetermined order; and constructing, for each current sample, an integral histogram, the integral histogram integrating a histogram of the current sample and the integral histograms of previously scanned samples.
 2. The method of claim 1, in which the scanning is in a left to right and then a top to bottom order.
 3. The method of claim 1, in which the set of samples is a d-dimensional array, and in which a range of values for each dimension is N_(d) with associated k-dimensional tensors.
 4. The method of claim 1, in which the integral histogram includes a plurality of bins, and a size of each bin is an integer number.
 5. The method of claim 4, in which the size is a power of two.
 6. The method of claim 1, in which the set of samples is a one-dimensional time series.
 7. The method of claim 1, in which the set of samples is a two-dimensional gray-level image.
 8. The method of claim 1, in which the set of samples is a color image.
 9. The method of claim 1, in which the set of samples is volumetric data.
 10. The method of claim 1, in which the set of samples is a video, and further comprising: constructing a similarity map from the integral histogram.
 11. The method of claim 10, in which the similarity map is used to detect an object in the image.
 12. The method of claim 7, in which the similarity map is used to detect textures in the image.
 13. The method of claim 1, further comprising: combining the integral histogram spatially.
 14. The method of claim 1, further comprising: combining the integral histogram hierarchally.
 15. The method of claim 1, further comprising: combining the integral histogram according to a model.
 16. The method of claim 1, in which the set of samples is an image, and further comprising: specifying target regions in the image according to corner points in a Cartesian space; determining the integral histogram for the target regions; and normalizing the integral histogram with respect to a size of the target regions in the image to obtain a normalized histogram.
 17. The method of claim 17, further comprising: adding bin values of the integral histogram of a lower-right corner point that correspond to a largest target region in the image to bin values of the integral histogram of an upper-left corner point in the image that correspond to a smallest target region, and subtracting the bin values of the upper-right and lower-left corner point integral histograms.
 18. The method of claim 17, further comprising: determining a distance between the normalized histogram and the integral histograms of the target regions.
 19. The method of claim 1, in which the set of samples is an image, and further comprising: constructing higher-level features by combining the integral histograms of intensity, color, texture, gradient, motion, orientation, template matching, and image filter responses of the image. 